package demo4.controller;

import demo4.mapper.IUserMapper;
import demo4.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

import java.util.List;
import java.util.Scanner;

/*
 * Controller 控制器
 * 这个层级的类负责和用户打交道，并将请求将来交给业务层处理，并结合处理结果
 * 反馈给用户
 */
@Controller
public class UserController {
    @Autowired
    private IUserMapper userMapper;

//    public void start(){
//        System.out.println("UserController:开始处理用户请求...");
//        System.out.println("UserController:开始处理注册...");
//        System.out.println("UserController:开始获取用户输入信息...");
//        userMapper.insert(null);   //将数据插入表中
//        System.out.println("UserController:注册成功...");//根据持久层对数据库的操作结果给予用户反馈
//
//    }

    public void start(){
        Scanner sc = new Scanner(System.in);
        System.out.println("请选择：1.注册 2.登录 3.列出所有用户 4.修改用户信息");
        System.out.print("输入编号：");
        int num = sc.nextInt();
        switch (num){
            case 1:
                userReg();
                break;
            case 2:
                userLogin();
                break;
            case 3:
                listAllUsers();
                break;
            case 4:
                userUpdate();
                break;
            default:
                System.out.println("输入错误！");
                break;
        }
    }

    //处理用户注册
    private void userReg(){
        System.out.println("欢迎注册");
        User user = new User();
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入用户名：");
        user.setUsername(sc.nextLine());
        System.out.print("请输入密码：");
        user.setPassword(sc.nextLine());
        System.out.print("请输入昵称：");
        user.setNickname(sc.nextLine());
        System.out.print("请输入年龄：");
        user.setAge(sc.nextInt());
        System.out.println(user);
        //获取信息后进行验证（有没有空，有没有非法字符），用户名是否重复
        //验证通过，将该用户插入数据库中
        int result = userMapper.insert(user);
        System.out.println(result>0?"注册成功":"注册失败");
    }

    //处理用户登录
    private void userLogin(){
        System.out.println("欢迎登录");
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入用户名：");
        String username = sc.nextLine();
        System.out.print("请输入密码：");
        String password = sc.nextLine();

        //验证输入信息(有没有空，输入内容是否合法)

        User user = userMapper.selectByUsername(username);
        if (user != null) {//用户名存在
            if (user.getPassword().equals(password)){
                //密码正确，登录成功
                System.out.println("登录成功");
            }else {
                //密码错误
                System.out.println("密码错误");
            }
        }else {//用户名不存在
            System.out.println("用户名不存在");
        }
    }

    //列出所有用户
    private void listAllUsers(){
        System.out.println("开始列出所有用户");
        List<User> users = userMapper.selectAll();
        for (User user : users) {
            System.out.println(user);
        }
    }

    //处理用户注册
    private void userUpdate(){
        System.out.println("修改密码");
    }
}
